package com.baomibing.flow.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomibing.flow.ui.UMeasured;
import com.baomibing.flow.ui.UPath;
import com.baomibing.flow.ui.UPosition;
import com.baomibing.flow.ui.UVariable;
import com.google.common.collect.Lists;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * WorkNode
 *
 * @author frog 2023/9/18 14:22
 * @version 1.0.0
 **/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ToString
public abstract class WorkNode extends BaseNode {

//    protected String nodeId;

//    protected String name;

    protected String description;

    protected String icon;

    protected UPosition position;

    protected UMeasured measured;

    protected List<UPath> lpaths;

    protected List<UPath> rpaths;

    protected List<UVariable> variables;

    Boolean deleteable = Boolean.TRUE;

    Boolean selected = Boolean.FALSE;

    Boolean dragging = Boolean.FALSE;

    @JSONField(serialize = false, deserialize = false)
    protected List<TransitionNode> inputs = Lists.newArrayList();

    @JSONField(serialize = false, deserialize = false)
    protected List<TransitionNode> outputs = Lists.newArrayList();


}
